import router from './router'
import NProgress from 'nprogress' // progress bar加载进度条
import store from './store'
import 'nprogress/nprogress.css' // progress bar style
// import { getToken } from '@/utils/auth' // get token from cookie
// import getPageTitle from '@/utils/get-page-title'

NProgress.configure({ showSpinner: false }) // NProgress Configuration

// 不需要认证的页面（路由白名单）
const whiteList = ['/login', '/404'] // no redirect whitelist

// 路由前置守卫，所有路由在真正被访问到之前，都会先经过路由前置守卫
// 只有前置守卫放行了，才能继续进入到所访问的页面
// router.js里面就只放路由和组件的匹配关系
// permission.js放路由的守卫
router.beforeEach(async (to, from, next) => {
  // start progress bar
  // 进度条
  NProgress.start()

//   set page title 设置网站标题
//   document.title = getPageTitle(to.meta.title)

  // determine whether the user has logged in
  // 获取用户token
  const token = store.getters.token
  // 判断有没有token，
  if (token) {
    // 判断要去的路径是否是login
    if (to.path === '/login') {
      // if is logged in, redirect to the home page
      // 直接放行到首页
      next({ path: '/' })
      // 关闭加载的进度条
      NProgress.done()
    } else {
        next()
    }
  } else {
    // 判断在不在白名单中
    if (whiteList.includes(to.path)) {
      // 在白名单，正常放行
      next()
    } else {
      // 不在白名单，跳转到登录页
      next('/login')
      NProgress.done()
    }
  }
})

router.afterEach(() => {
  // finish progress bar
  NProgress.done()
})
